<?php
//准备list页面的数据 - 重要

//1.连接数据库
include "const.php";

//2.查询渲染数据
$result = $const->query("select * from taobaogoods"); //获取所有的数据
$num = $result->num_rows; //记录集的总条数,数据库中所有数据的总条数  342


//3.定义变量定义每一页显示的条数
$pagesize = 40; //自定义每页的数据条数,单个页面展示的数据条数。 

//4.计算总的页数
$pagenum = ceil($num / $pagesize); //获取页数，一定选择向上取整。


//5.获取前端的传来的页码，根据页码查询对应的数据，返回给前端。
if (isset($_GET['page'])) { //判断前端传入的页面是否存在，
    $pagevalue = $_GET['page']; //获取页面
} else {
    $pagevalue = 1; //默认为1
}


//6.根据前端传入的page的值返回对应的数据。
// limit 后面有两个参数
// 参1：起始的偏移值(截取)的索引，从0开始   50数据(0-49)
// 参2：数据的条数    50
// 例如：select * from shoplist limit 0,15 -> 查询所有的数据 从0索引位置开始(第一个数据) 获取15条数据

// 1.select * from shoplist limit 0 ,50     page=1
// 2.select * from shoplist limit 50,50     page=2
// 3.select * from shoplist limit 100,50    page=3
// 4.select * from shoplist limit 150,50    page=4
// 5.select * from shoplist limit 200,50    page=5
// 6.select * from shoplist limit 250,50    page=6
// 7.select * from shoplist limit 300,50    page=7

//根据limit的第一个参数和前端传入的页码得到这个等式。
//$pagevalue：传入的页面
//$pagesize：每页显示的条数  50
$page = ($pagevalue - 1) * $pagesize;

// 排序+分页
// order by price ASC   ： order by 排序    price 数据库的字段，价格    ASC:升序
// order by price DESC   ： order by 排序    price 数据库的字段，价格    DESC:降序


// 三种情况
// 升序+分页
// 降序+分页
// 默认排序+分页
if (isset($_GET['sort'])) { //排序+分页

    if ($_GET['sort'] === 'asc') {
        $sql1 = "select * from taobaogoods order by price ASC limit $page,$pagesize"; //这里的sql语句跟页码有关，返回当前和页码相对应的数据。
    } else {
        $sql1 = "select * from taobaogoods order by price DESC limit $page,$pagesize"; //这里的sql语句跟页码有关，返回当前和页码相对应的数据。
    }
} else { //分页
    $sql1 = "select * from taobaogoods limit $page,$pagesize"; //这里的sql语句跟页码有关，返回当前和页码相对应的数据。
}

$res = $const->query($sql1); //执行sql语句


//通过二维数组输出
// $result->num_rows; //记录集的条数
// $result->fetch_assoc(); //逐条获取记录集的值，结果是数组。
$arr = array();
for ($i = 0; $i < $res->num_rows; $i++) {
    $arr[$i] = $res->fetch_assoc();
}


// 输出复杂接口(获取多个简单接口的值，输出)
// 将简单接口的值当做实例对象的属性。
class pagedata
{ //定义类

}

$page1 = new pagedata(); //实例化对象
$page1->pagesize =  $pagenum; //将页数传递给实例对象  总的页数
$page1->pagecontent = $arr; //将数据传递给实例对象  接口的内容
echo json_encode($page1); //json格式:接口返回总的页数和当页对应的数据。



